面试题 17.19. 消失的两个数字
https://leetcode.cn/problems/missing-two-lcci/
class Solution {
public:
    vector<int> missingTwo(vector<int>& nums) {
        int n=nums.size(),tmp=0;
        for(int i=0;i<n;i++)
        {
            tmp^=i+1;
            tmp^=nums[i];
        }
        tmp^=n+1,tmp^=n+2;

        //获取是哪一位上有1
        int i=0;
        for(;i<32;i++)
        {
            if((tmp>>i)&1)
                break;
        }
        //以第i为划分
        int num1=0,num2=0;
        for(int k=0;k<=n+2;k++)
        {
            if(((k>>i)&1)==1)
                num1^=k;
            else    num2^=k;
        }

        for(int j=0;j<n;j++)
        {
            if(((nums[j]>>i)&1 )==1)
                num1^=nums[j];
            else   
                num2^=nums[j];
        }
        return {num1,num2};
    }
};